package com.bwie.activity.mapper;

import com.bwie.activity.pojo.bo.ActivityRuleBo;
import com.bwie.activity.pojo.bo.JoinUserSkuBo;
import com.bwie.activity.pojo.bo.LogBo;
import com.bwie.activity.pojo.bo.LotteryLogBo;
import com.bwie.common.pojo.req.ActivityAddReq;
import com.bwie.common.pojo.req.ActivityReq;
import com.bwie.common.pojo.req.PrizeReq;
import com.bwie.common.pojo.req.UpdateRuleReq;
import com.bwie.common.pojo.res.ActivityRes;
import com.bwie.common.pojo.res.PrizeRes;
import com.bwie.common.pojo.res.RuleRes;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ActivityMapper {
    /**
     * 获取奖品规则列表
     * @return
     */
    List<RuleRes> getPrizeRules();

    /**
     * 修改规则
     * @param updateRuleReq
     */
    void updateRule(UpdateRuleReq updateRuleReq);

    /**
     * 获取活动列表
     * @param activityReq
     * @return
     */
    List<ActivityRes> activityList(ActivityReq activityReq);

    /**
     * 获取抽奖类型下拉框
     * @return
     */
    List<ActivityRes> getActivity();

    /**
     * 获取抽奖类型下拉框
     * @return
     */
    List<RuleRes> getRule();

    /**
     * 添加活动
     * @param activityAddReq
     */
    void addActivity(ActivityAddReq activityAddReq);

    /**
     * 批量添加活动规则中间表
     * @param activityRuleBo
     */
    void addActivityRule(ActivityRuleBo activityRuleBo);

    /**
     * 添加sku
     * @param joinUserSkuBo
     */
    void addJoinUserSku(JoinUserSkuBo joinUserSkuBo);

    /**
     * 添加记录表
     * @param logBo
     */
    void addLog(LogBo logBo);

    /**
     * 获取奖品信息
     * @param prizeReq
     * @return
     */
    List<PrizeRes> getRuleByUserIdId(PrizeReq prizeReq);

    /**
     * 添加抽奖记录
     * @param lotteryLogBo
     */
    void addLotteryLog(LotteryLogBo lotteryLogBo);
}
